package com.graduation.springbootinit.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.graduation.springbootinit.model.entity.MerchantApplication;

/**
 * 商户申请服务
 */
public interface MerchantApplicationService extends IService<MerchantApplication> {

    /**
     * 提交商户申请
     *
     * @param userId 用户id
     * @param reason 申请理由
     * @return 申请记录id
     */
    long submitApplication(Long userId, String reason);

    /**
     * 审核商户申请
     *
     * @param applicationId 申请id
     * @param status 审核状态（1-通过，2-拒绝）
     * @param reviewComment 审核意见
     * @param reviewerId 审批人id
     * @param reviewerName 审批人姓名
     * @return 是否成功
     */
    boolean reviewApplication(Long applicationId, Integer status, String reviewComment, Long reviewerId, String reviewerName);

    /**
     * 获取用户申请记录
     *
     * @param userId 用户id
     * @return 申请记录
     */
    MerchantApplication getUserApplication(Long userId);

    /**
     * 分页获取待审核的申请
     *
     * @param current 当前页码
     * @param pageSize 页面大小
     * @return 申请列表
     */
    Page<MerchantApplication> listPendingApplications(long current, long pageSize);

    /**
     * 分页获取申请列表
     *
     * @param current 当前页码
     * @param pageSize 页面大小
     * @param status 申请状态（null-全部, 0-待审核, 1-审核通过, 2-审核拒绝）
     * @return 申请列表
     */
    Page<MerchantApplication> listApplications(long current, long pageSize, Integer status);
}